package com.gxar.quick.ar.server.base.model.protocol.editor.web;

import com.gxar.common.utils.JacksonUtils;
import com.gxar.common.utils.StringUtils;
import com.gxar.quick.ar.server.base.model.protocol.ArSizeModel;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;

/**
 * Web编辑器输出配置
 *
 * @author zxh
 * @version 1.0
 * @created 2024/01/02.
 */
@Slf4j
@Data
public class WebEditorArIdentifyModel {

    /**
     * 协议版本
     */
    private String version;

    /**
     * 作品编号
     */
    private String workId;

    /**
     * 资源链接
     */
    private String linkUrl;

    /**
     * 是否展示识别图(投放时)
     */
    private Boolean showIdentify = false;

    private Double width;

    private Double height;

    private Double depth;

    /**
     * 原始大小
     */
    private ArSizeModel originData;

    /**
     * 位置
     */
    private String position;

    private Double[] rotationData;

    /**
     * 旋转，欧拉角，XYZ
     */
    private String rotation;

    /**
     * 缩放
     */
    private String scale;

    private String[] appName;

    private String[] appUrl;

    /**
     * 编辑器空间数据
     */
    private WebEditorArItemInterSpaceModel interspace;

    /**
     * 编辑器自定义信息
     */
    private Object customerData;

    public static WebEditorArIdentifyModel from(String inputConfig) {
        if (StringUtils.isEmpty(inputConfig) || !inputConfig.startsWith("{") || !inputConfig.endsWith("}")) {
            log.warn("build WebEditorArIdentifyModel error! inputConfig: {}", inputConfig);
            return null;
        }

        return JacksonUtils.parseObject(inputConfig, WebEditorArIdentifyModel.class);
    }
}
